package com.yy.controller.service;

import com.yy.dto.OrderPageQueryDTO;
import com.yy.entity.Orders;
import com.yy.result.PageResult;

import java.util.List;

public interface OrderService {
    /**
     * 分页条件查询订单列表
     * @return
     */
    PageResult list(OrderPageQueryDTO pageQueryDTO);

    /**
     * 获取所有order
     * @return
     */
    List<Orders> AllOrder();

    /**
     * 修改订单状态(若为取消,添加取消原因)
     * @param id
     * @param cancelReason
     */
    void updateStatus(Long id, String cancelReason);

    /**
     * 创建订单
     * @param orders
     * @return
     */
    Long create(Orders orders);

    /**
     * 获取订单信息及详情
     * @param id
     * @return
     */
    Orders getOne(Long id);

    /**
     * 超时取消订单
     * @param id
     */
    void overtimeCancel(Long id);

    /**
     * 获取订单列表
     * @return
     */
    List<Orders> getListByUserId();

    /**
     * 支付成功后修改订单状态
     * @param id
     */
    void paySuccess(Long id,Integer payMethod);

    /**
     * 用戶取消订单
     * @param id
     * @param cancelReason
     */
    void userCancel(Long id, String cancelReason);
}
